/**
 * ZHU framework. Copyright 2012-, all rights reserved.
 *
 * $Id: LifecycleNotFoundException.java 16 2012-08-03 09:20:29Z zhuxiaopeng $
 * $Revision: 16 $
 * $Date: 2012-08-03 17:20:29 +0800 (五, 2012-08-03) $
 * $Author: zhuxiaopeng $
 */
package zhu.framework.entity.lifecycle;

import zhu.framework.entity.*;

/**
 * <p>
 * </p>
 * 
 * @author $Author: zhuxiaopeng $
 * @version $Revision: 16 $ - $Date: 2012-08-03 17:20:29 +0800 (五, 2012-08-03) $
 */
public class LifecycleNotFoundException extends LifecycleException {

	/**
	 * <h3>スレッドセーフ性</h3>
	 * <p>
	 * この変数は<code>this</code>によってGuardされる。 この変数は<code>final</code>
	 * であり、参照先がスレッドセーフであるため、スレッドセーフ性を破ることはない。
	 * この変数の参照先はスレッドセーフ<strong>ではない</strong>。
	 * </p>
	 */
	private static final long serialVersionUID = 1L;

	public LifecycleNotFoundException(final Class<? extends Entity> entityClass) {
		this.entityClass = entityClass;
	}

	/**
	 * @param message
	 */
	public LifecycleNotFoundException(final Class<? extends Entity> entityClass, final String message) {
		super(message);
		this.entityClass = entityClass;
	}

	/**
	 * @param cause
	 */
	public LifecycleNotFoundException(final Class<? extends Entity> entityClass, final Throwable cause) {
		super(cause);
		this.entityClass = entityClass;
	}

	/**
	 * @param message
	 * @param cause
	 */
	public LifecycleNotFoundException(final Class<? extends Entity> entityClass, final String message, final Throwable cause) {
		super(message, cause);
		this.entityClass = entityClass;
	}

	/**
	 * <p>
	 * プロパティ<code>entityClass</code>の値を取得する。
	 * </p>
	 * 
	 * @return プロパティ<code>entityClass</code>の値
	 */
	public Class<? extends Entity> getEntityClass() {
		return entityClass;
	}

	private final Class<? extends Entity> entityClass;
}
